{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "#reading dataset\n",
    "import pandas as pd\n",
    "\n",
    "#group multiple files\n",
    "import glob\n",
    "\n",
    "#word2vec\n",
    "import gensim.models.word2vec as w2v\n",
    "\n",
    "#concurrency\n",
    "import multiprocessing\n",
    "\n",
    "#dealing with operating system , like reading file\n",
    "import os\n",
    "\n",
    "#dimensionality reduction\n",
    "import sklearn.manifold\n",
    "\n",
    "#visualization\n",
    "import seaborn as sns\n",
    "\n",
    "#generate random numbers\n",
    "import random"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Found files:\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "['data/02691156.csv',\n",
       " 'data/02747177.csv',\n",
       " 'data/02773838.csv',\n",
       " 'data/02801938.csv',\n",
       " 'data/02808440.csv',\n",
       " 'data/02818832.csv',\n",
       " 'data/02828884.csv',\n",
       " 'data/02834778.csv',\n",
       " 'data/02843684.csv',\n",
       " 'data/02858304.csv',\n",
       " 'data/02871439.csv',\n",
       " 'data/02876657.csv',\n",
       " 'data/02880940.csv',\n",
       " 'data/02924116.csv',\n",
       " 'data/02933112.csv',\n",
       " 'data/02942699.csv',\n",
       " 'data/02946921.csv',\n",
       " 'data/02954340.csv',\n",
       " 'data/02958343.csv',\n",
       " 'data/02992529.csv',\n",
       " 'data/03001627.csv',\n",
       " 'data/03046257.csv',\n",
       " 'data/03085013.csv',\n",
       " 'data/03207941.csv',\n",
       " 'data/03211117.csv',\n",
       " 'data/03261776.csv',\n",
       " 'data/03320046.csv',\n",
       " 'data/03325088.csv',\n",
       " 'data/03337140.csv',\n",
       " 'data/03467517.csv',\n",
       " 'data/03513137.csv',\n",
       " 'data/03593526.csv',\n",
       " 'data/03624134.csv',\n",
       " 'data/03636649.csv',\n",
       " 'data/03642806.csv',\n",
       " 'data/03691459.csv',\n",
       " 'data/03710193.csv',\n",
       " 'data/03759954.csv',\n",
       " 'data/03761084.csv',\n",
       " 'data/03790512.csv',\n",
       " 'data/03797390.csv',\n",
       " 'data/03928116.csv',\n",
       " 'data/03938244.csv',\n",
       " 'data/03948459.csv',\n",
       " 'data/03991062.csv',\n",
       " 'data/04004475.csv',\n",
       " 'data/04074963.csv',\n",
       " 'data/04090263.csv',\n",
       " 'data/04099429.csv',\n",
       " 'data/04225987.csv',\n",
       " 'data/04256520.csv',\n",
       " 'data/04330267.csv',\n",
       " 'data/04379243.csv',\n",
       " 'data/04401088.csv',\n",
       " 'data/04460130.csv',\n",
       " 'data/04468005.csv',\n",
       " 'data/04530566.csv',\n",
       " 'data/04554684.csv']"
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "file_names = sorted(glob.glob('data/*.csv'))\n",
    "\n",
    "print('Found files:')\n",
    "file_names"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "data/02691156.csv ---------- 15970\n",
      "data/02747177.csv ---------- 3462\n",
      "data/02773838.csv ---------- 418\n",
      "data/02801938.csv ---------- 390\n",
      "data/02808440.csv ---------- 3430\n",
      "data/02818832.csv ---------- 692\n",
      "data/02828884.csv ---------- 2771\n",
      "data/02834778.csv ---------- 236\n",
      "data/02843684.csv ---------- 73\n",
      "data/02858304.csv ---------- 5604\n",
      "data/02871439.csv ---------- 462\n",
      "data/02876657.csv ---------- 765\n",
      "data/02880940.csv ---------- 207\n",
      "data/02924116.csv ---------- 9135\n",
      "data/02933112.csv ---------- 1693\n",
      "data/02942699.csv ---------- 222\n",
      "data/02946921.csv ---------- 172\n",
      "data/02954340.csv ---------- 101\n",
      "data/02958343.csv ---------- 19114\n",
      "data/02992529.csv ---------- 6299\n",
      "data/03001627.csv ---------- 15598\n",
      "data/03046257.csv ---------- 988\n",
      "data/03085013.csv ---------- 135\n",
      "data/03207941.csv ---------- 285\n",
      "data/03211117.csv ---------- 4128\n",
      "data/03261776.csv ---------- 292\n",
      "data/03320046.csv ---------- 2\n",
      "data/03325088.csv ---------- 2193\n",
      "data/03337140.csv ---------- 826\n",
      "data/03467517.csv ---------- 841\n",
      "data/03513137.csv ---------- 181\n",
      "data/03593526.csv ---------- 696\n",
      "data/03624134.csv ---------- 550\n",
      "data/03636649.csv ---------- 2826\n",
      "data/03642806.csv ---------- 945\n",
      "data/03691459.csv ---------- 6596\n",
      "data/03710193.csv ---------- 189\n",
      "data/03759954.csv ---------- 134\n",
      "data/03761084.csv ---------- 305\n",
      "data/03790512.csv ---------- 726\n",
      "data/03797390.csv ---------- 297\n",
      "data/03928116.csv ---------- 985\n",
      "data/03938244.csv ---------- 96\n",
      "data/03948459.csv ---------- 1192\n",
      "data/03991062.csv ---------- 1142\n",
      "data/04004475.csv ---------- 349\n",
      "data/04074963.csv ---------- 132\n",
      "data/04090263.csv ---------- 4000\n",
      "data/04099429.csv ---------- 163\n",
      "data/04225987.csv ---------- 152\n",
      "data/04256520.csv ---------- 10920\n",
      "data/04330267.csv ---------- 218\n",
      "data/04379243.csv ---------- 14632\n",
      "data/04401088.csv ---------- 7102\n",
      "data/04460130.csv ---------- 229\n",
      "data/04468005.csv ---------- 883\n",
      "data/04530566.csv ---------- 7358\n",
      "data/04554684.csv ---------- 513\n",
      "\n",
      "------------------\n",
      "TOTAL 160015 words\n",
      "------------------\n"
     ]
    }
   ],
   "source": [
    "#Copy all words (tags) describing various objects into a new big array 'sentences'.\n",
    "\n",
    "sentences = []\n",
    "total_words = 0\n",
    "\n",
    "for file_name in file_names:\n",
    "    df = pd.read_csv(file_name)\n",
    "    \n",
    "    num_of_words = 0\n",
    "\n",
    "    for index, row in df.iterrows():\n",
    "        \n",
    "        sentence = row[2].lower().split(';')\n",
    "        sentences.append(sentence)\n",
    "        \n",
    "        num_of_words += len(sentence)\n",
    "        \n",
    "    print(file_name + ' ---------- ' + str(num_of_words))\n",
    "\n",
    "    total_words += num_of_words\n",
    "    \n",
    "print('\\n------------------')\n",
    "print('TOTAL ' + str(total_words) + ' words')\n",
    "print('------------------')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "#Dimensionality of the resulting word vectors\n",
    "#more dimensions means more training time, but more generalized\n",
    "num_features = 300\n",
    "\n",
    "#Minimum word count threshold.\n",
    "min_word_count = 3\n",
    "\n",
    "#Number of threads to run in parallel.\n",
    "num_workers = multiprocessing.cpu_count()\n",
    "\n",
    "#Context window length.\n",
    "context_size = 7\n",
    "\n",
    "#Downsample setting for frequent words.\n",
    "#Rate: 0 to 1e-5 (How often to use?)\n",
    "downsampling = 1e-3\n",
    "\n",
    "#Seed for the RNG, to make the results reproducible.\n",
    "seed = 1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "text2vec = w2v.Word2Vec(\n",
    "    sg = 1,\n",
    "    seed = seed,\n",
    "    workers = num_workers,\n",
    "    size = num_features,\n",
    "    min_count = min_word_count,\n",
    "    window = context_size,\n",
    "    sample = downsampling\n",
    ")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [],
   "source": [
    "text2vec.build_vocab(sentences)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "text2vec vocabulary length: 557\n"
     ]
    }
   ],
   "source": [
    "print('text2vec vocabulary length: ' + str(len(text2vec.wv.vocab)))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/Users/Sailesh/anaconda/lib/python2.7/site-packages/ipykernel_launcher.py:2: DeprecationWarning: Call to deprecated `iter` (Attribute will be removed in 4.0.0, use self.epochs instead).\n",
      "  \n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "(483492, 800075)"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#train model on sentneces\n",
    "text2vec.train(sentences, total_examples = text2vec.corpus_count, epochs = text2vec.iter)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [],
   "source": [
    "#save model\n",
    "if not os.path.exists(\"trained\"):\n",
    "    os.makedirs(\"trained\")\n",
    "\n",
    "text2vec.save(os.path.join(\"trained\", \"text2vec.w2v\"))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [],
   "source": [
    "#squash dimensionality to 2\n",
    "#https://www.oreilly.com/learning/an-illustrated-introduction-to-the-t-sne-algorithm\n",
    "tsne = sklearn.manifold.TSNE(n_components=2, random_state=0)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [],
   "source": [
    "#put it all into a giant matrix\n",
    "all_word_vectors_matrix = text2vec.wv.vectors"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [],
   "source": [
    "#train t sne (takes time if it's a huge dataset to train)\n",
    "all_word_vectors_matrix_2d = tsne.fit_transform(all_word_vectors_matrix)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [],
   "source": [
    "#plot points in 2d space\n",
    "points = pd.DataFrame(\n",
    "    [\n",
    "        (word, coords[0], coords[1])\n",
    "        for word, coords in [\n",
    "            (word, all_word_vectors_matrix_2d[text2vec.wv.vocab[word].index])\n",
    "            for word in text2vec.wv.vocab\n",
    "        ]\n",
    "    ],\n",
    "    columns=[\"word\", \"x\", \"y\"]\n",
    ")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>word</th>\n",
       "      <th>x</th>\n",
       "      <th>y</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>coach</td>\n",
       "      <td>-28.645754</td>\n",
       "      <td>8.908619</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>touring car</td>\n",
       "      <td>-12.207027</td>\n",
       "      <td>15.290479</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>pirate ship</td>\n",
       "      <td>14.022493</td>\n",
       "      <td>21.385433</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>tweeter</td>\n",
       "      <td>5.347136</td>\n",
       "      <td>-31.338976</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>trash can</td>\n",
       "      <td>-26.948378</td>\n",
       "      <td>11.452209</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>chair</td>\n",
       "      <td>-19.659025</td>\n",
       "      <td>-4.275553</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>bomber</td>\n",
       "      <td>-22.253550</td>\n",
       "      <td>13.660645</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>sports car</td>\n",
       "      <td>-14.572021</td>\n",
       "      <td>13.676883</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>two-seater</td>\n",
       "      <td>-14.258806</td>\n",
       "      <td>12.917846</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>cellular telephone</td>\n",
       "      <td>-12.247216</td>\n",
       "      <td>-17.116951</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>10</th>\n",
       "      <td>taxicab</td>\n",
       "      <td>-6.535098</td>\n",
       "      <td>11.336680</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>11</th>\n",
       "      <td>cruiser</td>\n",
       "      <td>-6.264875</td>\n",
       "      <td>21.090702</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>12</th>\n",
       "      <td>air-to-air missile</td>\n",
       "      <td>3.354221</td>\n",
       "      <td>-8.029027</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>13</th>\n",
       "      <td>laser printer</td>\n",
       "      <td>5.863841</td>\n",
       "      <td>-8.799814</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>14</th>\n",
       "      <td>bed cabinet</td>\n",
       "      <td>18.522511</td>\n",
       "      <td>-3.993299</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>15</th>\n",
       "      <td>bike</td>\n",
       "      <td>0.457799</td>\n",
       "      <td>6.593743</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>16</th>\n",
       "      <td>water tap</td>\n",
       "      <td>1.509306</td>\n",
       "      <td>15.609923</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>17</th>\n",
       "      <td>sea boat</td>\n",
       "      <td>14.428908</td>\n",
       "      <td>24.081503</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>18</th>\n",
       "      <td>vase</td>\n",
       "      <td>4.550564</td>\n",
       "      <td>-12.745046</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>19</th>\n",
       "      <td>dinghy</td>\n",
       "      <td>13.052900</td>\n",
       "      <td>20.465399</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>20</th>\n",
       "      <td>surface-to-air missile</td>\n",
       "      <td>3.631856</td>\n",
       "      <td>-6.340065</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>21</th>\n",
       "      <td>headboard beds</td>\n",
       "      <td>7.828708</td>\n",
       "      <td>-5.146519</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>22</th>\n",
       "      <td>station waggon</td>\n",
       "      <td>-13.516857</td>\n",
       "      <td>19.325987</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>23</th>\n",
       "      <td>acoustic guitar</td>\n",
       "      <td>14.395446</td>\n",
       "      <td>-4.941398</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>24</th>\n",
       "      <td>settle</td>\n",
       "      <td>-11.764236</td>\n",
       "      <td>-5.316759</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25</th>\n",
       "      <td>beacon light</td>\n",
       "      <td>2.615248</td>\n",
       "      <td>-4.918725</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>26</th>\n",
       "      <td>steeple</td>\n",
       "      <td>3.383950</td>\n",
       "      <td>-7.032395</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>27</th>\n",
       "      <td>landrover</td>\n",
       "      <td>-10.910427</td>\n",
       "      <td>16.909222</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>28</th>\n",
       "      <td>waggon</td>\n",
       "      <td>-13.666101</td>\n",
       "      <td>19.021698</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>29</th>\n",
       "      <td>zigzag chair</td>\n",
       "      <td>-17.633013</td>\n",
       "      <td>-5.178926</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>170</th>\n",
       "      <td>bath</td>\n",
       "      <td>-24.946953</td>\n",
       "      <td>14.803327</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>171</th>\n",
       "      <td>swivel chair</td>\n",
       "      <td>-18.874958</td>\n",
       "      <td>-4.965267</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>172</th>\n",
       "      <td>wagon</td>\n",
       "      <td>-12.976394</td>\n",
       "      <td>19.127983</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>173</th>\n",
       "      <td>spigot</td>\n",
       "      <td>1.637054</td>\n",
       "      <td>15.079839</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>174</th>\n",
       "      <td>trolleybus</td>\n",
       "      <td>-4.199431</td>\n",
       "      <td>-11.380906</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>175</th>\n",
       "      <td>beach wagon</td>\n",
       "      <td>-12.939904</td>\n",
       "      <td>18.486370</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>176</th>\n",
       "      <td>police boat</td>\n",
       "      <td>10.572722</td>\n",
       "      <td>14.266381</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>177</th>\n",
       "      <td>filing cabinet</td>\n",
       "      <td>-2.591913</td>\n",
       "      <td>-15.201872</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>178</th>\n",
       "      <td>turbofan</td>\n",
       "      <td>-10.127391</td>\n",
       "      <td>10.189189</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>179</th>\n",
       "      <td>microwave oven</td>\n",
       "      <td>-8.510367</td>\n",
       "      <td>1.506194</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>180</th>\n",
       "      <td>double-decker</td>\n",
       "      <td>-29.618937</td>\n",
       "      <td>9.554118</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>181</th>\n",
       "      <td>concert piano</td>\n",
       "      <td>-4.178137</td>\n",
       "      <td>-6.728973</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>182</th>\n",
       "      <td>file cabinet</td>\n",
       "      <td>-2.595582</td>\n",
       "      <td>-15.207233</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>183</th>\n",
       "      <td>dugout</td>\n",
       "      <td>5.327706</td>\n",
       "      <td>-2.790456</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>184</th>\n",
       "      <td>pingpong table</td>\n",
       "      <td>11.105569</td>\n",
       "      <td>-19.702803</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>185</th>\n",
       "      <td>wine bottle</td>\n",
       "      <td>1.202316</td>\n",
       "      <td>-13.184360</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>186</th>\n",
       "      <td>grandfather clock</td>\n",
       "      <td>10.939734</td>\n",
       "      <td>3.622188</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>187</th>\n",
       "      <td>washer</td>\n",
       "      <td>-5.951283</td>\n",
       "      <td>-20.466713</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>188</th>\n",
       "      <td>ballistic missile</td>\n",
       "      <td>10.451940</td>\n",
       "      <td>-4.169175</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>189</th>\n",
       "      <td>day bed</td>\n",
       "      <td>-12.110972</td>\n",
       "      <td>-2.824176</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>190</th>\n",
       "      <td>jumbo jet</td>\n",
       "      <td>1.776135</td>\n",
       "      <td>-0.191648</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>191</th>\n",
       "      <td>soup bowl</td>\n",
       "      <td>13.446409</td>\n",
       "      <td>-4.692570</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>192</th>\n",
       "      <td>sailing vessel</td>\n",
       "      <td>15.906744</td>\n",
       "      <td>23.737427</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>193</th>\n",
       "      <td>park bench</td>\n",
       "      <td>-14.220337</td>\n",
       "      <td>-4.656446</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>194</th>\n",
       "      <td>soda can</td>\n",
       "      <td>-0.100266</td>\n",
       "      <td>-5.846029</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>195</th>\n",
       "      <td>short table</td>\n",
       "      <td>14.072762</td>\n",
       "      <td>-20.988819</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>196</th>\n",
       "      <td>motorbus</td>\n",
       "      <td>-29.589279</td>\n",
       "      <td>8.831918</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>197</th>\n",
       "      <td>taxi</td>\n",
       "      <td>-6.350404</td>\n",
       "      <td>11.145679</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>198</th>\n",
       "      <td>fishing boat</td>\n",
       "      <td>15.954467</td>\n",
       "      <td>21.297813</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>199</th>\n",
       "      <td>subway train</td>\n",
       "      <td>-1.211483</td>\n",
       "      <td>-18.854607</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>200 rows × 3 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "                       word          x          y\n",
       "0                     coach -28.645754   8.908619\n",
       "1               touring car -12.207027  15.290479\n",
       "2               pirate ship  14.022493  21.385433\n",
       "3                   tweeter   5.347136 -31.338976\n",
       "4                 trash can -26.948378  11.452209\n",
       "5                     chair -19.659025  -4.275553\n",
       "6                    bomber -22.253550  13.660645\n",
       "7                sports car -14.572021  13.676883\n",
       "8                two-seater -14.258806  12.917846\n",
       "9        cellular telephone -12.247216 -17.116951\n",
       "10                  taxicab  -6.535098  11.336680\n",
       "11                  cruiser  -6.264875  21.090702\n",
       "12       air-to-air missile   3.354221  -8.029027\n",
       "13            laser printer   5.863841  -8.799814\n",
       "14              bed cabinet  18.522511  -3.993299\n",
       "15                     bike   0.457799   6.593743\n",
       "16                water tap   1.509306  15.609923\n",
       "17                 sea boat  14.428908  24.081503\n",
       "18                     vase   4.550564 -12.745046\n",
       "19                   dinghy  13.052900  20.465399\n",
       "20   surface-to-air missile   3.631856  -6.340065\n",
       "21           headboard beds   7.828708  -5.146519\n",
       "22           station waggon -13.516857  19.325987\n",
       "23          acoustic guitar  14.395446  -4.941398\n",
       "24                   settle -11.764236  -5.316759\n",
       "25             beacon light   2.615248  -4.918725\n",
       "26                  steeple   3.383950  -7.032395\n",
       "27                landrover -10.910427  16.909222\n",
       "28                   waggon -13.666101  19.021698\n",
       "29             zigzag chair -17.633013  -5.178926\n",
       "..                      ...        ...        ...\n",
       "170                    bath -24.946953  14.803327\n",
       "171            swivel chair -18.874958  -4.965267\n",
       "172                   wagon -12.976394  19.127983\n",
       "173                  spigot   1.637054  15.079839\n",
       "174              trolleybus  -4.199431 -11.380906\n",
       "175             beach wagon -12.939904  18.486370\n",
       "176             police boat  10.572722  14.266381\n",
       "177          filing cabinet  -2.591913 -15.201872\n",
       "178                turbofan -10.127391  10.189189\n",
       "179          microwave oven  -8.510367   1.506194\n",
       "180           double-decker -29.618937   9.554118\n",
       "181           concert piano  -4.178137  -6.728973\n",
       "182            file cabinet  -2.595582 -15.207233\n",
       "183                  dugout   5.327706  -2.790456\n",
       "184          pingpong table  11.105569 -19.702803\n",
       "185             wine bottle   1.202316 -13.184360\n",
       "186       grandfather clock  10.939734   3.622188\n",
       "187                  washer  -5.951283 -20.466713\n",
       "188       ballistic missile  10.451940  -4.169175\n",
       "189                 day bed -12.110972  -2.824176\n",
       "190               jumbo jet   1.776135  -0.191648\n",
       "191               soup bowl  13.446409  -4.692570\n",
       "192          sailing vessel  15.906744  23.737427\n",
       "193              park bench -14.220337  -4.656446\n",
       "194                soda can  -0.100266  -5.846029\n",
       "195             short table  14.072762 -20.988819\n",
       "196                motorbus -29.589279   8.831918\n",
       "197                    taxi  -6.350404  11.145679\n",
       "198            fishing boat  15.954467  21.297813\n",
       "199            subway train  -1.211483 -18.854607\n",
       "\n",
       "[200 rows x 3 columns]"
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "points.head(200)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x1a21cfcf90>"
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 1440x864 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "sns.set_context(\"poster\")\n",
    "\n",
    "#plot\n",
    "points.plot.scatter(\"x\", \"y\", s=10, figsize=(20, 12))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [],
   "source": [
    "#zoom in into the plot\n",
    "def plot_region(x_bounds, y_bounds):\n",
    "    slice = points[\n",
    "        (x_bounds[0] <= points.x) &\n",
    "        (points.x <= x_bounds[1]) & \n",
    "        (y_bounds[0] <= points.y) &\n",
    "        (points.y <= y_bounds[1])\n",
    "    ]\n",
    "    \n",
    "    ax = slice.plot.scatter(\"x\", \"y\", s=35, figsize=(10, 8))\n",
    "    for i, point in slice.iterrows():\n",
    "        ax.text(point.x + 0.005, point.y + 0.005, point.word, fontsize=11)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAqgAAAH4CAYAAACG3h82AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvhp/UCwAAIABJREFUeJzs3Xl4FdX9x/H3MTSALEEgVsAFgZKw3NxshFUDYZFFUKygbAKiwYIbbRDwZ1vccQPcUBARAgSraDWAiMQSC1KIARLCvghiaYGARAIkgSTn90fKlZAASUjIRD6v57mPuTNnznxn2l4/PTNzxlhrERERERFxiqvKuwARERERkbMpoIqIiIiIoyigioiIiIijKKCKiIiIiKMooIqIiIiIoyigioiIiIijKKCKiIiIiKMooIqIiIiIoyigioiIiIijVCrvAiqqunXr2oYNG5Z3GSIiIiIXtW7dusPWWt/yrqOoFFBLqGHDhiQmJpZ3GSIiIiIXZYz5obxrKA5d4hcRERERR1FAFRERERFHUUAVEREREUdRQBURERERR1FAFRERERFHUUAVEREREUdRQBURERERR1FAFRERERFHUUAVEREREUepUAHVGNPUGPO6MWajMea4Mea/xphYY4y7kLbxxhhbyOfx8qhdRERERIqmor3qtBvQCZgDrAdqAU8Aa40x7a21685pvxEYec6yvWVdpIiIiIiUXIUaQQU+BNzW2testSustX8HugMZwGOFtE+31q4553PgslYsIuJAn332Gc2aNSMoKIjt27djjOH48eMX3CYtLY2XX375MlV4ccOGDeOtt94qUtuzjy8wMJCMjIwS7XPv3r3UrVu3RNuKSNFVqIBqrT1srbXnLPsZ2AE0KJ+qREQqnunTp/PMM8+wYcMG/Pz8irSN0wJqSSUlJVG1atXyLkNELqBCBdTCGGNqAy2BrYWsDjLG/GyMOf2/+1ZHXObyREQcZ8yYMaxcuZJx48bRqVOnAuujoqJo1aoVbrebzp0788MPPwAwevRo0tLSCAwMpF27dgW2i4+Px+12M3z4cIKDgwkLC2PLli0AHDhwgE6dOhESEkKLFi144oknPNtNnDiRAQMG0LNnT/z9/enVqxcnT54E4NSpU4wdO5awsDACAwMZMmTIRUd6AT799FP8/f1p164dzz33XL51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REQuqLBpqnalnsAezci3rHLlyrRv357Dhw8zffp0rr32WgDPlE+1a9emf//+l61uEam49JBUCekhKRG5UhRlmiqnTx0lcqXTQ1IiIvKrUhbTVImIXIgCqoiIXNCYrk1p4lst37ImvtXyPShlrdXoqYiUGt2DKiIiF3Rmmqqpcfmf4i/taapERM5QQBURkYu61GmqRESKQ5f4RURERMRRFFBFRERExFEUUEVERETEURRQRURERMRRFFBFRERExFEUUEVERETEURRQRURERMRRFFBFRERExFEUUEVERETEURRQRURERMRRFFBFRERExFEUUEVERETEURRQRURERMRRFFBFRERExFEUUEVERETEURRQRURERMRRFFBFRERExFEUUEVERETEURRQRURERMRRFFBFRERExFEUUEVERETEURRQRURERMRRFFBFRERExFEUUEVERETEURRQRURERMRRFFBFRERExFEUUEVERETEURRQRURERMRRFFBFRERExFEUUEVERETEURRQRUREiskYw/HjxwEIDAwkIyOjRP3s3buXunXrlmZpl9WwYcN46623yrsM+RWqVN4FiIiIVGRJSUnlXYLIr45GUEVERC7i008/xd/fn3bt2vHcc8/lW3dmNDU3N5dRo0bh7++P2+2mffv2wC+jpFFRUYSFheFyuVi5cmWh+xk0aBChoaG4XC769u3L0aNHAejZsycLFy7MV0+3bt0KbB8fH4/b7Wb48OEEBwcTFhbGli1bADhw4ACdOnUiJCSEFi1a8MQTT3i2mzhxIgMGDKBnz574+/vTq1cvTp48CcCpU6cYO3YsYWFhBAYGMmTIEM/osUhZUUAVERG5gEOHDvHggw/y+eefs3r1ary9vQttl5ycTFxcHFu2bCE5OZnFixd71h05coSAgAASEhJ46623GDBgAFlZWQX6eP3110lMTCQlJYUWLVrw0ksvAfDoo4/y9ttve9q9/fbbjB49utA6Nm7cyLBhw1i/fj2jR4/mvvvuA6BWrVosWrSIdevWkZSURGJiIl9++aVnu8TERGJiYti6dSunT59m/vz5ALz88sv4+PiQkJBAUlIS9evX58UXXyzmWRQpHgVUERGRC1izZg3BwcH4+fkBEBkZWWi7Ro0akZOTw4gRI5g7d26+dd7e3gwePBiA8PBwqlatyvbt2wv0ER0dTUhICC6Xi5iYGM/tA7fddhsHDhxg69atbNu2jd27d3P77bcXWkeTJk0IDw8HYMiQIaSkpHDs2DFycnIYO3YsbrebkJAQNm3alO/2hNtuu41atWphjKF169bs3r0bgNjYWObNm0dgYCCBgYHExsZ61omUFd2DKiLiMMYY0tPTqV69+mXbZ8OGDVm8eDEtW7a8bPt0stT0LKYs38H+tAxO7NjLqZzci27j4+PD5s2biY+P5+uvv2bcuHGsX7++0LbWWowx+ZatXLmSd955h9WrV+Pr60tMTAwzZswA8v47MXr0aKZNmwbAyJEj8fLyKtYxTZ48maNHj7J27VqqVKlCZGQkmZmZnvVVqlTx/O3l5eV58Mtay7Rp04iIiCjW/kQuhUZQRUSuILm5uVhry7sMR0tNz2LAjH8Rk7CPb3aksvZEHf61NpG1GzYDMHPmzMK3S00lIyOD7t27M2nSJHx8fPj++++BvPs4Y2JigLwgmpmZ6RmRPSMtLQ0fHx/q1KlDVlYWs2bNyrd+6NChfPbZZ/ztb3/jgQceOG/9u3bt8tzjGhMTg8vlombNmqSlpVGvXj2qVKnC/v37+fzzz4t0Pvr06cPkyZM9gTU9PZ2tW7cWaVuRklJAFRFxoFdffZV27drh5+fHJ5984ln+5ZdfEhQUREBAAJ07d2bXrl3AxR+AGTx4MHfeeSdut5u0tDRWrlyJy+UiLCyMRx99VKH1LFOW72BX6gnPd69qtajV7WF69r6ddu3aUalS4Rcff/zxR7p06YLb7SYgIIAePXrQpk0bAOrUqcPOnTtp3bo1o0aNYsGCBQXuZe3RoweNGzfG39+fHj16EBwcnG99jRo16N69O926dcPX1/e89QcGBrJgwQJCQkJ44403iI6OBvLuY/32228JCgriD3/4A507dy7S+Rg/fjxut5tWrVoREBBAhw4dFFCl7Flr9SnBJyQkxIqIlAXAPv3009Zaa7dt22Zr165tDx48aA8ePGjr1q1rN2/ebK21dubMmTYsLMxaa21GRoZNT0+31lp76tQp26lTJ7t06VJrrbV//etf7Q033GBTU1OttdZmZmba+vXr2xUrVlhrrf3b3/5mAZuSknI5D7PUAJ5jd7vd9uTJkyXqZ8+ePbZOnTr2vvfX2pvGLS7wGTprbbH6W7FihQ0JCfH0e6lOnz5tmzVrZhMSEs7bZsGCBdbLy+uS9yW/PkCidUB+KupHI6giIg40YsQIAPz8/AgODmbNmjWsXbsWt9tN8+bNARg+fDhJSUmkp6df9AGYnj17eiaE3759O1dffTUdO3YEoH///vj4+FzeAywjSUlJVK1a9ZL6aFCr8O3Pt/xyiI2NpXHjxnTr1o1WrVoBkJ2dXW71iJQ1BVQRkXKWmp7Fk5+mMHRWAk9+mlJgvf3fAzVn/lmYsx+A2bhxI3feeWe+B2DOfuDKVvDL+WU9J+mYrk1p4luN1EWv8N85j/Of90dzcskkhofmXVYv6pykAKdPn+bpp5/mxhtvzDcnKcBLL71Ey5YtadmyJcOHD/fMLfr111/Ttm1bgoKCcLlcfPjhh/Tp04cffviBpKQknnzySTp37swdd9wB5E051aRJE2655RY2b95MrVq1LvEMi5Q/BVQRkXJ07gM5MQn7AHjr3fcA2LlzJ0lJSbRu3Zq2bduSlJTEtm3bAJgzZw5BQUHUqFGjWA/A+Pv7k5GRwT//+U8AFi5cyM8//1zGR1o6LsecpL41KrMgsi2RTzzDgBfmM3bGIgb3aM/Mt6cCpTMn6dKlS5k7dy6rV68mJSWFnJwcnn32WQCCg4NZtWoVGzZsIC4ujqioKM+E/QCbNm1i2bJlLFmyhI0bN/L888/z7bffsnLlSo4cOVLCMyviLJpmSkSkHJ37QM4ZCfuO0b59ew4fPsz06dO59tprAZg7dy4DBw4kOzsbX19f5s2bB+SFpn79+hEUFMQNN9xwwQdgKleuzIIFCxg1ahRVq1YlIiKCG2+8sWwOsJQVNifpuHHjCrQ7e07SiIiIfHOGnm9O0po1a3ra+NaozA1HEvnn/PmsO3WKEydO0LRpUyBvvtAxY8awdetWjDHFmpM0MjKSY8eOERcXx7333uvZZ2RkJI899hiQNxvA/fffz86dO6lUqRI//fQT27dv9zxwNXDgQM+DWvHx8fTq1Yvf/va3nn4++uijEp5dEedQQBURKUf70zIKLLtp3GJu8PNl9pzJBdZ1796d7t27F9zmpptISEgodB8TJ04ssOyWW24hJeWX2wkmTZpUjKovr1/jnKSF7fPM9z/84Q/06dOHTz/9FGMMTZs2/dXeriFyPrrELyJSjpz4QI6T/FrnJO3atSsffvgh6enpWGuZOXMmXbp08ey7YcOGGGNYvny5ZyqxwnTq1IkvvviCQ4cOAfD++++ft61IRaIRVBGRcjSma1MS9hzJd5m/iW81xnRtWo5VOceF5iT1u7Ee/fv3L3S7H3/8kQcffJDs7Gyys7M9c5Lu27cv35ykJ0+ePO+cpPPmzcPf35/rr7+e0NDQfCPUZ+YkzcjIKNKcpI8//jheXl6eOUl79OjBxo0badu2LQChoaE89dRTQN5o9qhRo5g0aRIBAQEEBASct/+AgACefPJJ2rdvz3XXXUevXr0uckZFKgajywMlExoaahMTE8u7DBH5FUhNz2JqXN4l7Aa1qjKma1PqVq9c3mU5wtBZCXyzI7XA8o5+vsweHlbs/vbu3UtoaCiHDx++pLqys7MJCAhgzpw5nmmfRJzMGLPOWhta3nUUlUZQRUTKmW+Nyjzf11XeZTiSE2+BiI2N5ZFHHqFv374KpyJlRCOoJaQRVBGRsnfmHtRzb4H4cGRbjTKLFINGUEVERErJmTlJdQuEyJVFAVVERBxNt0CIXHk0zZSIiIiIOIoCqoiIiIg4igKqiIiIiDiKAqqIiIiIOIoCqoiIiIg4igKqiIiIiDiKAqqIiIiIOIoCqoiIiIg4igKqiIiIiDiKAqqIiIiIOIoCqoiIiIg4igKqiIiIiDiKAqqIiIiIOIoCqoiIiIg4igKqiIiIiDiKAqqIiIiIOIoCqoiIiIg4igKqiIiIiDiKAqqIiIiIOIoCqoiIiIg4SoUKqMaYpsaY140xG40xx40x/zXGxBpj3Odpf40xZqoxZp8xJssY829jzOzLXLaIiIiIFEOl8i6gmLoBnYA5wHqgFvAEsNYY095au+5MQ2PMNcAqwAJPAXuB+kD7y1yziIiIiBRDRQuoHwJvW2vtmQXGmH+QFz4fA+47q+2LQHXAZa09dk4fIiIiIuJQFeoSv7X28Nnh9H/LfgZ2AA3OLDPGVCMvrM48J5yKiIiIiMNVqIBaGGNMbaAlsPWsxSFAVeCgMWahMSbjf/esfmaMublcChURERGRIqnwARV4EzDA1LOW1f/fP18FcoA+QCQQBMQbY2qUZEfGmHVnPpdQr4iIiIhcQLkGVGNMF2OMLcIn/jzbTwAGAg9ba3edterMce0B7rXWLrfWxgD9gRuBwWV4WCIiIiJyCcr7IanVQLMitDt57gJjzEPAC8BT1tpZ56w+8r9/xp19z6q1dq0x5hh5I6nFZq0NOfN3aGiovVBbERERESmZcg2o1tqTwLbibmeMGQJMA16z1j5fSJPNZ3Zxni5yi7tPEREREbk8Ktw9qMaYvsAH5D2hH1VYG2vtv4FEoJsxxpy1bVugJvDd5ahVRERERIqvvC/xF4sx5lZgAbARmG2MaXPW6ixr7Yazvo8HlgELjTEzAV/gefJGbGMuU8kiIiIiUkwVKqACEUBl8u4h/facdT8ADc98sdZ+bYzpDTwD/B04ASwBxlprMy5LtSIiIiJSbBUqoFprJwITi9F+KbC0rOoRERERkdJX4e5BFREREZFfNwVUEREREXEUBVQRERERcRQFVBERERFxFAVUEREREXEUBVQRERERcRQFVBERERFxFAVUEREREXEUBVQRERERcRQFVBERERFxFAVUEREREXEUBVQRERERcRQFVBERERFxFAVUEREREXEUBVQRERERcRQFVBERERFxFAVUEREREXEUBVQRERERcRQFVBERERFxFAVUEREREXEUBVQRERERcRQFVBERERFxFAVUEREREXEUBVQRERERcRQFVBERERFxFAVUEREREXEUBVQRERERcRQFVBERERFxFAVUEREREXEUBVQRERERcRQFVBERERFxFAVUEREREXEUBVQRERERcRQFVBERERFxFAVUEZEyZIzh+PHjpdLX3r17qVu3bqn0VdYmTpxIVFRUeZchIhWUAqqIyBUkOzu7vEsQEbkoBVQRkTL26quv0q5dO/z8/Pjkk088ywcNGkRoaCgul4u+ffty9OhRz7pZs2bhdrtxu920atWKgwcP5uszKyuL/v3788c//hFrLVu2bKF169a0bNmSwYMH06ZNGxYvXgxAx44defLJJ+ncuTN33HEHANHR0bhcLgICAujbty+HDh0CCo58nv194sSJDBgwgJ49e+Lv70+vXr04efIkAD///DN33303zZs3p3v37uzevbsMzqSIXCkUUEVEythVV13F6tWriY2NJTIy0hMGX3/9dRITE0lJSaFFixa89NJLAMTHx/PCCy+wbNkykpOTWbFiBT4+Pp7+fvrpJ2677Tbat2/P5MmTMcYwZMgQHnnkETZt2sTjjz/Od999l6+GTZs2sWzZMpYsWcKmTZsYP348X331FRs3bqRly5Y88sgjRTqWxMREYmJi2Lp1K6dPn2b+/PkAPPPMM9SsWZMtW7Ywb948vvnmm9I4dSJyhapU3gWI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DLZnzx569OhBYGAgPXr0wBjDrl27aNOmDV999RVjx45l8eLF+S7bb9y4kbvuuouPP/6YW2+99bz7jYuLY+TIkQDUq1ePXr16sWLFCs/60vhtEpHC6d/IDnW+qWp++OEHxowZw3fffcfNN9/M6tWrPXMfFsbagtPJnFlemPNNU1Pcfgprf/b3c6eqOff7+V7HeHa/Xl5enulwzp0Kp7DtPvvsMxo1alToet1zJqXFt0Zlnu/rKu8yKrRzf//8z/PgkrWWgIAA/vnPfxa6PikpieXLlzN37lwmTZrEqlWrALj++utJT08nPj6eZs2aXbCWC/2OnVvLhab5EpHi0QiqA51vqprU9CyOHTuGt7c31113Hbm5ubz77rv5tj116hQxMTEArFy5kszMTPz8/KhZsyYnT570BL+aNWsSGBjInDlzANi2bRvJycm0bt3a09eZKWPOnhrnXL1792bq1KmeJ1/PPITVtWtXZs+ezenTpzl9+jRz5szxTGNTXLNnz847/tRUli5dSseOHYG86XDOvC3nzDGfUaNGDX7++WfP9z59+jBp0iTPfaeHDx9mz549JapHRMpOYb9/M7d5sX79Bnbu3AnAzJkzAQgODmbnzp35RjW/++47rLXs2bOHmjVrcu+99zJ58mTP1FkAtWvXJi4ujrlz5/Laa695tj33d6NLly6euWkPHDjAF198QadOnTzrz/fbJCKXTgHVgc43Vc20FbtwuVz069ePFi1aEBERwc0335yvTZ06ddi5cyetW7dm1KhRLFiwAG9vb2rXrs2gQYNwuVyeh6Tmz5/PvHnzCAgIYODAgcydOxdfX19PX5UrVy4wNc65xo8fT8OGDQkMDCQwMJCHHnoIyLsEFxAQQFBQEEFBQQQEBPDggw+W6HzceOON3HLLLbRt25YJEybgcuWNTk2ZMoWRI0dyyy23kJqa/8npP/3pT0RERHgedpg6dSpeXl643W5cLhfdu3dn//79JapHRMpOYb9/+zK96fjA/9G7d2/atWvnuR3nmmuuITY2lqeffhq3202zZs2YOHEi1lri4+MJCgryXPp/9913ueqqX/6V5+Pjw1dffcWiRYt45plngIK/G2+88QbJyckEBATQtWtXJk2aRIsWLTx9nO+3SUQunaaZKqGynGaqpFPVlOZUUk6ZbqVhw4YsXryYli1blmsdInJ5lOdUXcWh3yapaDTNlFyy8pyqRkSkPOn3T0RAD0k50piuTUnYcyTfZa4mvtUY07XpBbdr2LBhqU3E75SR9b1795Z3CSJyGZX09+9y02+TSNnSJf4SKus3SaWmZzE17penWMd0baqpakTkiqDfP5HSV9Eu8SugltDlftWpiIiISElVtICqe1BFRESuAO+++y5TpkwpdN3s2bO5++67y2zf8fHxhIbmZaPExEQGDRpU4r7KulZxBt2DKiIicgU4Mw1geQsNDWX+/PnlXYY4nEZQRUREfiWeffZZxowZ4/l+5MgR6tSpw4kTJ5g4cSJRUVFA3ktdRo4ciZ+fHxERESQkJOTr5+WXXyYsLIzg4GB69+7NgQMHADh+/DjDhw+nZcuWtGzZkpdeeum8tTz11FM0adKE8PBwlixZ4ll+9mjqoUOH6NKlCy6XC5fL5al99uzZdO3ald///ve43W4iIiIKnbv6wIEDdOrUiZCQEFq0aMETTzwBQEZGBvXq1eO///2vp+2jjz7KCy+8UKzzKeVHAVVERORXYujQoXz44YeetwbGxMRwxx13UK1atXztpk+fzp49e9i0aROLFy/OF1DnzZvHrl27WLNmDevXr6dnz5786U9/AvICcG5uLikpKaxevZro6GiWLl1aoI5FixYRGxtLUlIS//jHP9i2bVuh9c6fP5+bbrqJlJQUUlJS+Mtf/uJZt2rVKl544QWSk5MJDw/nscceK7B9rVq1WLRoEevWrSMpKYnExES+/PJLqlatytChQz1vAjtx4gQffvghDzzwQDHPqJQXBVQREZFfiRtvvJHmzZvzxRdfAHkjkcOHDy/QbsWKFQwdOpTf/OY3XH311QwePNizLjY2lri4OIKDgwkMDOTtt9/2TKsVFxfHgw8+iDGGmjVrMmDAAOLi4grt/5577qF69ep4eXkxYsSIQutt06YNX331FWPHjmXx4sX5Xg7ToUMH/Pz8AHjggQf4xz/+UWD7nJwcxo4di9vtJiQkhE2bNpGUlATA6NGjmTVrFtnZ2cydO5du3boV+kZEcSbdgyoiIlKBpaZnMWX5L9Ny3XXPIObMmUOjRo34+eefueWWWwpsc6EZfKy1PPXUU9x///2FrjPG5Ft27veL9X+2tm3bkpSUxPLly5k7dy6TJk1i1apVRdovwOTJkzl69Chr166lSpUqREZGkpmZCcANN9xAq1at+Pzzz5k2bRrTp08vUk3iDBpBFRERqaBS07MYMONfxCTs45sdqcQk7GPhkfp8880/efXVVxk2bFih23Xu3Jm5c+eSnZ1NRkYGMTExnnV9+vRh2rRpHD16FICsrCySk5MB6Nq1KzNnzsRaS3p6Oh9++CFdunQptP+PPvqIEydOkJOTwwcffFBoHXv27KFmzZrce++9TJ48mXXr1pGbmwvAt99+y86dO4G8keBOnToV2D4tLY169epRpUoV9u/fz+eff55v/SOPPMLjjz9OpUqVaNu27UXOpjiJRlBFREQqqCnLd+R76xbAnp9zuD7wFubOncuePXsK3S4yMpKNGzfSokULrr/+esLDwz1thwwZwuHDhwkPDwcgNzeXUaNG4Xa7+fOf/8zDDz+My+XytO3evXuB/m+//Xb+9a9/ERgYSP369enUqVOhDznFx8fz2muvUalSJXJzc3n33Xe56qq8sbPw8HD++te/snnzZurUqcPcuXMLbP/oo4/Sr18/goKCuOGGG+jcuXO+9eHh4VSpUoVRo0Zd7FSKw2ii/hLSRP0iIlLehs5K4JsdqQWWd/TzZfbwsHKoqHTMnj2bxYsXs3DhwkvqZ8+ePbRv355du3Zx9dVXl1J1FZMm6hcREZHLokGtqsVafiX5y1/+wi233MJrr712xYfTikgjqCWkEVQRESlvZ+5BPfsyfxPfanw4si11q1cux8rEaSraCKruQRUREamgfGtUZkFkW6bG/fIU/5iuTRVOpcJTQBUREanAfGtU5vm+rvIuQ6RU6R5UEREREXEUBVQRERERcRQFVBERERFxFAVUEREREXEUBVQRERERcRQFVBGRK0R8fDyhoaU3DeLs2bO5++67S62/stSxY0cWL15c3mWISBEpoIqIOEB2dnZ5l1AurtTjFpELU0AVESkFJ0+epF+/fjRv3hy3203//v0962bNmoXb7cbtdtOqVSsOHjzI3r17qVu3LhMnTqRDhw7MnDmTU6dOMXbsWMLCwggMDGTIkCEcP34cgGPHjvHAAw8QFhZGQEAAjz32GDk5OUDe6ODYsWPp0KEDjRo1Yvz48eet8/Tp0wwfPpzg4GDCwsLYsmULAAcOHKBTp06EhITQokULnnjiCc82p06dIioqipYtW+J2u+nbt2+Bfn/88UdCQ0P56KOPAPjkk0/w9/cnKCiIF154AWOM51iMMbzyyit07NiRp59+mpycHE//LVu2JCoqKt+xnT3yefb3Cx33li1baN26NcHBwQwePJjMzMxi/KcpIuVNAVVEpBQsW7aMo0ePsmXLFpKTk5k+fTqQd1n9hRdeYNmyZSQnJ7NixQp8fHwAOHLkCM2aNWPVqlU89NBDvPzyy/j4+JCQkEBSUhL169fnxRdfBOCPf/wj4eHhnnWHDh1i1qxZnv3v27ePf/7zn2zYsIGZM2eyc+fOQuvcuHEjw4YNY/369YwePZr77rsPgFq1arFo0SLWrVtHUlISiYmJfPnllwC8+OKLfP/996xfv57k5GTee++9fH0mJyfTo0cPJk+eTP/+/Tl06BCRkZEsWrSIDRs2ULVqwffC5+bmEh8fz7PPPsuMGTNISkpi/fr1rF+/ng0bNjBjxowinffzHfeQIUMYNWoU69ev5+GHH+a7774rUn8i4gwKqCIipcDtdrNt2zZGjx7Nxx9/TOXKea+aXLJkCffddx/XXXcdANWrV6dKlSoAVKlSJd9Ia2xsLPPmzSMwMJDAwEBiY2PZvXu3Z90rr7xCYGAgwcHBrFu3jh07dni27devH1dddRU+Pj40a9bMs925mjRpQnh4OJAX4lJSUjh27Bg5OTmMHTsWt9tNSEgImzZtIikpCYDFixfz+OOP4+3tDUDdunU9/W3cuJG77rqLjz/+mFtvvRWANWvWEBwczO9+9zsA7r///gJ1DB061PN3XFwcw4YNw9vbG29vb4YPH05cXFyRznthx33s2DE2bdrEkCFDAGjTpg0ul960JFKR6FWnIiIllJqexZTlv7wDfWVCEskJq1i6dClPPvkkKSkpWGvPu321atUwxni+W2uZNm0aERERBdpaa/nss89o1KhRoX2dCb0AXl5exb63c/LkyRw9epS1a9dSpUoVIiMjPZfFL3QM119/Penp6cTHx9OsWTNP+7OPqzDVq1f3/F1Y+zPfK1WqRG5urmf5uZfqz3fcF9u/iDibRlBFREogNT2LATP+RUzCPr7ZkUp03Hrun5NI+849mDJlCqmpqfz000/07t2b6OhoDh48CMDx48fJysoqtM8+ffowefJkMjIyAEhPT2fr1q2edZMmTfLcm3n48GH27NlT7Lp37drFypUrAYiJicHlclGzZk3S0tKoV68eVapUYf/+/Xz++eeebXr37s3UqVM5deqUZ99n1K5dm7i4OObOnctrr70G5I1Yrlu3jl27dgF5T/tfSNeuXZk9ezanT5/m9OnTzJkzhy5dugDQuHFjz+X5LVu2eEZ1L6RmzZq0bNmSmJgYABISEkhJSSnK6RERh1BAFREpgSnLd7Ar9YTn++nUvXw75Q+0dAUQFhbGhAkTqF+/PuHh4UyYMIEuXbrgdruJiIggLS2t0D7Hjx/veZAqICCADh06eALq1KlT8fLywu1243K56N69O/v37y923YGBgSxYsICQkBDeeOMNoqOjAXj00Uf59ttvCQoK4g9/+AOdO3fOV1fDhg09tx489NBD+fr08fHhq6++YtGiRTzzzDP89re/5d1336VXr160b9+ejIwMfvOb33D11VcXWlNkZCQBAQEEBQURFBREQEAADz74IADjxo3jiy++IDQ0lFdffZWgoKAiHWd0dDRvvvkmwcHBvPfee7Rp06bY50pEyo+50KUbOb/Q0FCbmJhY3mWISDkZOiuBb3akFlje0c+X2cPDyqEiZ0lPT6dGjRoAfPDBB7z//vusWrWqnKsSuXIZY9ZZa0tvIuQyVqHuQTXGNAVGA52ARkA68B3wZ2tt8lntOgIrLtBVW2vtmjIsVUR+5RrUKvhk+oWWX2neeOMNPv74Y7Kzs6ldu3aBJ/9FRC6kQo2gGmMeBiKBOcB6oBbwBBAEtLfWrvtfu5pA80K6eB+oDVxvrc25lFo0gipyZTtzD+rZl/mb+Fbjw5FtqVu9cjlWJiJSUEUbQa1oAbUucMSeVbQxxgfYCyyy1t53gW1vAvYAr1lrx15qLQqoIpKansXUuF+e4h/TtanCqYg4UkULqBXqEr+19nAhy342xuwAGlxk8yGAIW/0VUTkkvnWqMzzfTW/pohIaavwT/EbY2oDLYGtF2l6H7DeWrvpEva17synpH2IiIiIyIVV+IAKvEneyOjU8zUwxrQFfodGT0VE5H+MMRw/fpzAwEDP3LPFtXfv3nxv1hKR0lGuAdUY08UYY4vwiT/P9hOAgcDD1tpdF9jVUOA0EHMp9VprQ858LqUfERFxjqSkJKpW1ewLIk5S3iOoq4FmRfgUePjJGPMQ8ALwlLV21vl2YIypDPQHlhR2D6uIiFwZPv30U/z9/WnXrh3PPfecZ/mZkdTc3FxGjRqFv78/breb9u3bA7+MkkZFRREWFobL5fK8jetcgwYNIjQ0FJfLRd++fTl69CgAPXv2ZOHChflq6datWxkerUjFVq4B1Vp70lq7rQiffWdvZ4wZAkwj74n85y+ymz7ANejyvojIFevQoUM8+OCDfP7556xevRpvb+8CbZKTk4mLi2PLli0kJyezePFiz7ojR44QEBBAQkICb731FgMGDCj0lbWvv/46iYmJpKSk0KJFC1566SUg701db7/9tqfd22+/zejRo8vgSEV+Hcp7BLXYjDF9gQ+AmdbaqCJsMhQ4Aiwp08JERMSx1qxZQ3BwMH5+fkDe61XP1ahRI3JychgxYgRz587Nt87b25vBgwcDEB4eTtWqVdm+fXuBPqKjowkJCcHlchETE0NSUhIAt912GwcOHGDr1q1s27aN3bt3c/vtt5f2YYr8alSoaaaMMbcCC4CNwGxjzNkvV86y1m44p/21wG3AO9ba05evUhERKW+p6VlMWZ43T+2JHXs5lZN7wfY+Pj5s3ryZ+Ph4vv76a8aNG8f69esLbWutxRiTb9nKlSt55513WL16Nb6+vsTExDBjxgwg7zaC0aNHM23aNABGjhyJl5dXKRylyK9ThQqoQARQmbw3R317zrofgIbnLBtE3jHq8r6IyBXk3Dd95Zyow8G1iazdsJnWQS2YOXNmwW1SU6lUqRLdu3ena9euLF68mO+//5769etz6tQpYmJiGDx4MCtXriQzMxM/Pz/+85//eLZPS0vDx8eHOnXqkJWVxaxZ+R+PGDp0KM2bNycrK4vNmzeX7QkQqeAqVEC11k4EJhaj/RRgSlnVIyIizjRl+Y58r6H1qlaLWt0epmfv2/G7sR79+/cvsM2PP/7Igw8+SHZ2NtnZ2fTo0YM2bdqwb98+6tSpw86dO2ndujUnT55kwYIFBe5j7dGjB/PmzcPf35/rr7+e0NBQEhISPOtr1KhB9+7dycjIwNfXt+wOXuRXoEK96tRJ9KpTERHnGjorgW92pBZY3tHPl9nDw4rV1969ewkNDeXw4UubCCY7O5uAgADmzJlDq1atLqkvkeKqaK86rXAPSYmIiFxMg1qFz2t6vuVlLTY2lsaNG9OtWzeFU5Ei0AhqCWkEVUTEuc69BxWgiW81PhzZlrrVK5djZSLlo6KNoBbrHlRjzEJgFvCltfbCj0OKiIiUE98alVkQ2ZapcXlP8TeoVZUxXZsqnIpUEMV9SKob0Bc4YIyZA3xgrd1Z+mWJiIhcGt8alXm+r6u8yxCREijuPai/BYYB24FxwDZjzEpjzDBjTLXSLk5ERERErjzFCqjW2gxr7VxrbQTQCHgWaEDeZf//GmPeN8Z0KIM6RUREROQKUeKn+K21P1hrJ1prGwGdga/JG139xhiz3Rgz1hjjU0p1ioiIiMgV4pKnmTLGhJP3vvuugAHWAz8BLwG7jTGdLnUfIiIiInLlKFFANcY0NMb81RizG/gH0Bv4AAi01ray1rYFWgEHgDdLrVoRERER+dUr7jRTQ4DhwK3kjZZ+A/wZ+MRam3V2W2vtOmPMa8CMUqpVRERERK4AxZ1mag7wX+Bl4H1r7e6LtN8MzCtJYSIiIiJyZSpuQL0TWGKtzSlKY2ttApBQ7KpERERE5IpVrIBqrY0tq0JERERERKAUnuIXERERESlNCqgiIiIi4igKqCIiIiLiKAqoIiIiIuIoCqgiIiIi4igKqCIiIiLiKAqoIiIiIuIoCqgiIiIi4igKqCIiIiLiKAqoIiIiIuIoCqgiIiIi4igKqCIiIiLiKAqoIiIiIuIoCqgiIiIi4igKqCIiIiLiKAqoIiIiIuIoCqgiIiIi4igKqCIiIiLiKAqoIiIiIuIoCqgiIiIi4igKqCIiIiLiKAqoIiIiIuIoCqgiIiIi4igKqCIiIiLiKAqoIiIiIuIoCqgiIiIi4igKqCIiIiLiKAqoIiIiIuIoCqgiIiIi4igKqCIiIiLiKAqoIiIiIuIoCqgiIiIi4igKqCIiIiLiKAqoIiIiIuIoCqgiIiIi4igKqCIiIiLiKAqoIiIiIuIoCqgiIiIi4igKqCIiIiLiKAqoIiIiIuIoCqgiIiIi4igKqCIiIiLiKAqoIiIiIuIoCqgiIiIi4igKqCIiIiLiKAqoIiIiIuIoCqgiIiIi4igKqCIiIiLiKAqoIiIiIuIoCqgiIiIi4igKqCIiIiLiKAqoIiIiIuIoCqgiIiIi4igKqCIiIiLiKAqoIiIiIhVUdnZ2eZdQJhRQRURERMrRyZMn6devH82bN8ftdtO/f38AZs2ahdvtxu1206pVKw4ePMjevXupW7cuEydOpEOHDsycOZNTp04xduxYwsLCCAwMZMiQIRw/fhyAY8eO8cADDwA0M8ZsNMa8bozxAjDGxBtjXjHGrDLGfG+MmVRe5+BcCqgiIiIi5WjZsmUcPXqULVu2kJyczPTp04mPj+eFF15g2bJlJCcns2LFCnx8fAA4cuQIzZo1Y9WqVTz00EO8/PLL+Pj4kJCQQFJSEvXr1+fFF18E4I9//CPh4eEAW4FA4Frg/rN2fyNwKxAEPGCM+d1lPPTzqlTeBYiIiIhcydxuN9u2bWP06NF07NiRXr16sWTJEu677z6uu+46AKpXr+5pX6VKFc8oK0BsbCzHjh1j4cKFAGRlZeF2uz3rEhISAJoD64GrgX+ftfuPrbW5wM/GmK1AY2Bn2R1t0SigioiIiFxGqelZTFm+g/1pGTSoVZUxXZuydetWvv76a5YuXcqTTz7JHXfccd7tq1WrhjHG891ay7Rp04iIiCjQ1lrLZ599RuPGjbdYa0ML6S7zrL9zcEg21CV+ERGRK0x8fDxfffVVeZdxRUpNz2LAjH8Rk7CPb3akEpOwj74vx/LTyWzuvPNOpkyZQmpqKr179yY6OpqDBw8CcPz4cbKysgrts0+fPkyePJmMjAwA0tPT2bp1q2fdpEm/3FpqjKlrjLm5jA/zkimgioiIXGEuJaDm5OSUai2l3Z/TTVm+g12pJ/It27ltC2Gt2+B2uwkLC2PChAmEh4czYcIEunTpgtvtJiIigrS0tEL7HD9+vOdBqoCAADp06OAJqFOnTsXLywughTEmBfgSaFCmB1karLX6lOATEhJiRUSuRCtWrLDLli0rk7737Nlj6/x/e3ceXVV1/n/8vSEmIENBiDOCMgTJdEmCSQAFhIiIKJTWygxVmUGpfFuwqFQFtaJYFcTaMoWp1fa3RAQZNFERlIAGInMoYMWqCAhhCiQ8vz9ucg0ZIGG6N/B5rXVWcvc5e5/n3JMbHvbZe6dWLTMz27Vrl7Vu3fqM20pJSbFA+F29YsUKa9GihUVFRVlUVJTvvVu1apUlJCRYZGSkJSQk2KpVq8zs5/dg1KhR5vF4LCwszFavXm0PPvigRUZG2i233GL/+9//zMxs2rRp1q5dO/vlL39pUVFR1qZNG/vmm2/MzOzJJ5+0Rx991BdH/ut169bZVVddZaGhoRYdHW3PPvusmZm999571rx5c4uJibGEhARbuXKlmXnfx+joaBs6dKjFx8fbu+++e9L1ff/999a2bVuLiIiwiIgIe+SRR3z7xo8fbxERERYVFWWJiYmWm5tbbHv79++3Bx54wJo1a2aRkZE2fPhwy8nJMTOzb7/91rp27WrNmjWziIgIGzdunK/9unXr2uOPP24JCQlWt25de/XVV8/pvTsfev/9c6v7hwVFtj5TPz+v5wVWWwDkT6XdAmKcgYiIlB+pqakcPHiQO+64o8x1c3Nz83tzTuvaa68lJSWlzOcIJHv37qVLly78+9//pnnz5uTm5nLgwAGOHTtG165dmTp1Ku3ateODDz6ga9euZGZmAt5Z2i1btuTZZ5/lhRdeoG3btqSmpvLmm28yePBgXnvtNZ555hkAli9fTnp6OmFhYfzpT3/i4Ycf9k2WKU5kZCQDBw7k4MGDTJgwAYBt27bx9NNPs3jxYqpXr8769evp0KEDX3/9NQAZGRm8/vrrvPrqq0Xamz17NnXr1mXZsmUA7Nu3D4AZM2Ywf/58Pv30U6pXr86ePXuoUKFCse09+OCDtGrVir/97W+cOHGCHj16MHXqVB566MUbSM4AACAASURBVCF69+7N448/zm233caxY8do27YtzZo1IykpCfAu0bRy5Up27NhBREQEffv2PWlCUaC5rkblMpVfqvSIX0QkgK1cuZKWLVv61kLMfyyblpZGYmIiUVFRJCYmkpaWBuBbI3H06NE0bdqUxo0bs2bNGh566CGioqKIj4/nu+++A2D69OkkJSXRtWtX3yPEXbt2ATB27FhGjhzpiyP/dUZGBlOmTGHmzJl4PB7f2LaFCxfSokULYmNjSUxM5LPPPgO8yazH42HYsGEkJCSwaNGiItc4adIkGjRowK233srf//53X3n+tUDJ60SmpqYSHR1Nv379iImJ4ZZbbmHDhg1FzpGTk0P79u2Ji4sjPDycfv36cezYMQAiIiJ87x/ASy+9RP/+/c/kdhWxcuVKmjRpQvPmzQGoWLEiNWvWZPPmzQQHB9OuXTsA2rZtS3BwMJs3bwa8M7Y7duwIQExMDNdffz0ejweA2NhYXyIL0LJlS8LCwgBvovfhhx+WOc7Fixezbds2brvtNjweDz169CAnJ8c3/rFhw4YkJiYWWzchIYElS5bwf//3fyxYsMCXHC5YsIBBgwZRvXp1AGrVquWrU7i9+fPn88ILL+DxeIiJiWHNmjVs2bKFQ4cOkZqayvDhw/F4PNxyyy18++23vsfXAPfffz8A9erVo2bNmnzzTcEJ6oFnRFIjGoRWOamsQWgVRiQ18lNEgUk9qCIiAepS6H1bt24d48aN48svv+Sqq65i8ODBxZ634DqR8HMvXX4br7zyCq1atWLGjBn07t2b1atXn1S/YsWKzJkzh1q1amFm9OnTh6lTpzJw4ECGDh3K5MmTmTZtGmbG66+/fsr34HQKztA+nLmd47knihxjZifNws6XXxYSEnJS7JUqVTrpdUl/Pahgu0FBQZw48fO5jx49Wmyd/Hp33nknM2fOLLJv48aNp+yRTExMJD09naVLl5KcnMxzzz3H8uXL8T5VLl7h9sy8M81vuummk8qzsrJwzpGWlsZll11WbFulfW8CRWi1EOb2T+TlZSfP4q9dNeT0lS8h6kEVEQlQl0LvW2pqKh07duSqq64CKLHnsuA6kW+99dZJCVyDBg3yFyKnV69eZGRkcODAgZPqnzhxggkTJuDxeIiKiuLDDz8kPT0dgN69e7N48WL27t3L4sWLueqqq3xrSJZV4Rnanx2qzaov17Fw2UeAd4jDvn37aNy4MdnZ2b4hDCkpKRw/fpxGjcrei/bpp5+ydat32crp06fTpk0bAOrXr8+aNWs4ceIEWVlZLFiwwFenevXq7N+/3/f6jjvu4P3332f9+vW+soK9yqeyfft2qlevzv33389LL73kO2enTp14/fXXycrKArz/cSpJ/kzz/AlTP/74I9u3b6datWrceuutJ81C/+9//+t7ClBehVYLYVyXSKb3u4VxXSKVnBajXPWgOucaAUOANsBNQBaQBjxuZmsLHXs58AegG1AH+BFIAZ4wsx0XMGwRkVK71HrfTtXLVtBNN91UZJ3IjIyMUtUFmDNnDsuXL+eTTz6hWrVqjB8/ni1btgBw+eWX0717d6ZNm0ZqaipDhgwpdbuFFZ6hXbFyNWre8xj9hwznihCjQoUKTJgwgXbt2vGvf/2L4cOHc+jQIapUqcLbb79NcHBwmc/ZqlUrnnzySdavX0+tWrVITk4GoGvXrvzzn/8kPDycBg0aEBsb66vTpUsXkpOT8Xg83H///YwaNYpZs2bxwAMPcOTIEY4dO0aLFi1o1qzZac+fmprKiy++6PuZmTJlChUqVKB3797s2rWLhIQEgoKCqFatGh9//HGxbbz88sv8/ve/Jzo6GuccISEhvPzyy9x4443Mnj2bESNGEBkZCUC1atWYOnWqbwF7uUj5e5ZWWTZgKLAOeBRvktoFWIl3kdnYQsfOAQ4D/5d3bB9gB7ANqHq2sQTCzNDCAMvKyjrj+vv27bPnn3/+HEYkImXxw4Gj1nZCim9W7/XD51pwtZr23tJUMzPLycmxvXv3WnZ2ttWpU8c+/PBDMzP78MMP7YYbbrDs7OyTZsGbFZ3JPm3aNOvatavv+8qVK9uWLVvMzOzpp5/27ZszZ47ddtttlpubawcOHLDw8HDfjPAXX3zRHnzwQV+bW7ZssdDQUPvqq698Zfkz0k83k37t2rV27bXX2vfff29mZkOHDvXFX/Ba/vvf/9qhQ4fMzOzQoUP2i1/8wnbt2mUpKSkG2Mcff2xmZsnJyb7zFTz3K6+8Yp07dzYzs59++snCw8OtT58+vjj+85//2PXXX2/XXHONZWdnl3yTTuNCz9AueD9FTgXN4j+v5gGT8t5oAJxzH+JNPB8GeueVVQbuA/5sZi8UOPZ7YBHQAlh84cIuH3766Sf+/Oc/8/vf/97foYhcki7F3reoqCgee+wxWrRowdVXX+0bmlBYRkYGo0aNAryPyUePHs21117Lli1b8Hg8zJ07l0ceeYSKFSsW25Pbu3dv3nnnHcLDw7nuuuu49dZbfYuaA9x44400btyY+Pj4M3of82mGtsi54QrkeuWWc+5z4KCZtc17XQ04AIw2s+cKHJeAt8f1LjMrOpW0DOLi4qzwIHx/c86RlZVF1apVGTlyJB999BHHjh2jdu3aTJ06lbp167Jjxw7i4uLo27cvH3/8MUeOHGHy5MnceuutdOzYkcWLFxMREcHll1/OihUryMzMZMCAAezevZugoCDGjx/PnXfe6Tvfk08+yZIlS9izZw/jx4+na9eufn4XRMqvPlNX8dGW3UXKW4eFMr3fLef8fNOnT2fBggVnNSHI31JTUxk5cmSRSVFldeDAARo3bsyqVau4/vrrz7id/DGoBf+j0SC0CvMGJGqcofiVc26NFf+nTgNSuZ8k5Zy7AogAfGtOmFkWkAwMd861cc5Vdc6FAy8Aa4EP/BLsBTRq1CjS0tJYu3Yt3bp14w9/+INv3549e4iKimLVqlW89tprdOvWjezsbCZNmkSNGjVIT09nxYoVAPTo0YPu3buzbt06Zs2aRc+ePdm9++d/QCtUqMCKFSuYP38+/fv354cffrjg1ypysVDvm39MmTKFJk2a8Oijj55Vcgo/z9DuEX8DrcNC6RF/g5JTkTNQ7ntQnXOz8Y5FjTKzzALlFYFXgIJrlnwOdDKzol0UpTvXmvzvY2NjYwK5BzU5OZlJkyZx8OBB34SITZs2sWPHDsLCwjhy5IhvweSGDRvyr3/9i+rVqxMXF8ePP/4IeJf3qF279knHtmvXjocffphOnTrhnOObb77huuu8fzEtKSmJYcOGcc899/jh6kXKP/W+icj5Ut56UP06BtU51w5YWopDPzKz1sXUHw10Bx4omJzmeQboCYzEO9P/BuBJYJFzrpWZHaKcKzjbt2APy86dOxkxYgRpaWnceOONrFixgu7du5fYjpUwI7ik/7wUd+yp2hGR0tH6iCIiXv6eJLUCuLkUxx0uXOCcGwiMB8aY2dRC+8KBUcCDZvb3AuWfA1uAB4G/lDVYM/PNEoiLi/Nr13NxPS355QcPHCA4OJirr77at+RHQceOHWPOnDn07NmTTz75hKNHjxIWFsbBgwc5fPgwOTk5BAUFUb16dTweDzNmzKBfv35s2rSJtWvXEh8f72tr2rRpjBkzhq1bt5Kenn7SPhEpu/z1EUVELmV+TVDN7DCwqaz1nHO9gMnAi2Y2rphD8n+7n7TKsJltdc79ROmS4oBWeLZvvskpmbzQPZ5f//rXhIeHc8MNN9CqVauT1p6rVasWW7duJT4+nsOHDzN37lyCg4O54oor6NGjB5GRkdSsWZMVK1Ywe/ZsBgwYwMSJEwkKCiI5OZnQ0FBfWyEhIbRo0YIff/yRN954gyuvvPKCXL+IiIhcvMrdGFTnXBfgLWCqmRX7J0ecc63xLsr/kJn9rUB5I2Az3sX6nz6bOPw9i/9MZ/vmz+LPH2d6NgqOeRUREZHApTGo55Fz7jZgLt7F+qfnLRuVL9vMvsz7/hO8s/VfdM7VBFbjHYM6BtgPzLhwUZ8fmu0rIiIiF6tylaACtwMhQFPg00L7dgL1AMws1znXFngM6A88hfdPna7A23v69YUK+HwZkdSIVdv3FJntOyLp1H/HuV69euek9xRK/ycKRURERMqi3D3iDxT+fsQP3glRmu0rIiIip6NH/HLBaLaviIiIXIzK/V+SEhEREZGLixJUEREREQkoSlBFREREJKAoQRURERGRgKIEVUREREQCihJUEREREQkoSlBFREREJKAoQRURERGRgKIEVUREREQCihJUEREREQkoSlBFREREJKAoQRURERGRgKIEVUREREQCihJUEREREQkoSlBFREREJKAoQRURkUtKamoqS5Ys8XcYpfbEE0/wj3/8Ayh/sYucqSB/ByAiInIhpaamcvDgQe64444y183NzaVixYrnIaqSPfXUU77vy1vsImdKPagiInLerFy5kpYtWxIdHU10dLSv9y8tLY3ExESioqJITEwkLS0NgB07dlC7dm1Gjx5N06ZNady4MWvWrOGhhx4iKiqK+Ph4vvvuOwCmT59OUlISXbt2JTo6mttvv51du3YBMHbsWEaOHOmLI/91RkYGU6ZMYebMmXg8Hp577jkAFi5cSIsWLYiNjSUxMZHPPvsM8CaEHo+HYcOGkZCQwKJFi066vrLEm5uby8iRI4mIiCAiIoKRI0eSm5sLQN++fRk4cCC33347DRs2pHfv3piZb99rr71WYuwzZ84kMjKSqKgounTpwg8//OB7f+6880569epFbGwsGRkZ5/juipxHZqbtDLbY2FgTEZGS7dmzx6666ir79NNPzcwsJyfH9u7da9nZ2VanTh1bunSpmZktW7bM6tSpY9nZ2bZ9+3YDbMGCBWZm9uc//9l+8Ytf2JdffmlmZoMGDbI//vGPZmY2bdo0q1Spkm3atMnMzMaOHWtdu3Y1M7Mnn3zSHn30UV8sBV8X3peZmWkJCQm2f/9+MzP76quvrE6dOmZmlpKSYhUqVLAVK1YUe41liXfy5MnWtm1by87OtuzsbLv99ttt8uTJZmbWp08fa9GihR05csSys7OtSZMmtmTJEt++V199tdjYMzIy7JprrrFvv/3WzMzGjBlj9913n+/9qVKlimVmZpbmdslFDlhtAZA/lXZTD6qIiJwXK1eupEmTJjRv3hyAihUrUrNmTTZv3kxwcDDt2rUDoG3btgQHB7N582YAqlatSseOHQGIiYnh+uuvx+PxABAbG0tmZqbvHC1btiQsLAyABx98kA8//LDMcS5evJht27Zx22234fF46NGjBzk5OXz//fcANGzYkMTExBLrlzbeZcuW0bdvX4KDgwkODqZfv34sW7bM107nzp2pVKkSwcHBxMTEsG3bttPGnpKSwl133cU111wDwIABA05qs2XLltSvX7+M74iI/2kMqoiInDO7s7KZuHQLu346wuHM7RzPPVHkGDPDOVekPL8sJCTEV1axYkUqVap00uucnJxiz12w3aCgIE6c+PncR48eLTFm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2pSoqCjatm1LZmYmAKmpqXg8HoYNG0ZCQgKLFi26wO+MiFyMlKCKiJQTNWrUIC0tjeeff557772Xli1b8uWXX9K7d2/GjRsHwKJFi0hOTmbFihVkZGSQm5vL008/7Wtj9erVzJkzh40bN3L8+HFmz5590jlq1arFU089Rbt27UhPT+eVV17hhx9+oFevXsyePZt169bRvXt3evTo4auTkZFB9+7d+eyzz7j77rsvzJshIhc1JagiIuXEb37zGwBiYmJwztGxY0cAYmNjfT2ay5Yt4/7776d69eo45+jfvz/Lli3ztdG+fXtq1KiBc474+Hi2bdt22vN+/vnnREdH06RJEwD69etHeno6WVlZADRs2JDExMRzeq3nmnPO15NcWq1bt2bBggXnKSIRORWNQRURCUC7s7KZuHQLu346wnU1KgNQqVIlACpWrEhISIjv2IoVK5KTkwOAmeGcO6mtgq/z28ivd+TIkdPGUlybBVWtWrUUVyQiUnrqQRURCTC7s7Lp9teVzFn1NR9t2c2cVV/7yk8nKSmJefPmkZWVhZnxt7/9jXbt2pXp/NWrV2f//v2+14mJiaSnp7Np0yYAZsyYQdOmTalWrVqZ2g0UGzdu5I477iAqKorIyEhmzJgBwIYNG4iPjycmJoaePXty9OhRP0cqculSgioiEmAmLt1C5u5DRconp2Setm6HDh3o2bMniYmJREZGAjBmzJgynb9t27YcOnSI6Ohohg8fTmhoKMnJyXTv3p2oqChmzZrFrFmzytRmoMjJyeHee+/loYceYt26dWRkZPjGzfbq1YvBgwfzxRdfMHToUNLS0vwcrcily5mZv2Mol+Li4mz16tX+DkNELkJ9pq7ioy27i5S3Dgtler9b/BBR+eecIysri507d9KpUyf+85//nLT/wIEDhIaGcuTIESpU8PbdeDwennnmGU38kouCc26NmcX5O47S0hhUEZEAkz/mtLTlUlRxY3jBO562JKcaZysiF5Ye8YuIBJgRSY1oEFrlpLIGoVUYkdTITxGVL6caw9u4cWOCgoJ46623fMfv2bOH6tWrExERwZw5cwBYtWoVGRkZfolfRJSgiogEnNBqIcztn0iP+BtoHRZKj/gbmDcgkdpVQ05fWU45hjcoKIh33nmHKVOmEBkZSXR0NAsXLgRg5syZvPrqq8TExPDmm2+SkJBwoUMXkTwag3qGNAZVRCQwaQyvSFHlbQyqelBFROSiojG8IuWfElQREbmoaAyvSPmnWfwiInJRyR/D+/Kyn2fxj0hqpDG8IuWIElQREbnohFYLYVyXSH+HISJnSI/4RURERCSgKEEVERERkYCiBFVEREREAooSVBEREREJKEpQRURERCSgKEEVERERkYCiBFVEREREAooSVBEREREJKEpQRURERCSgKEEVERERkYCiBFVEREREAooSVBEREREJKEpQRURERCSgKEEVERERkYCiBFVEREREAoozM3/HUC4553YDO/0dx0Xu5ryvG/0aheg+BAbdh8Cg+xA4dC/Kpq6Zhfo7iNJSgioByzm3BsDMYv0dy6VM9yEw6D4EBt2HwKF7cXHTI34RERERCShKUEVEREQkoOgRv4iIiIgEFPWgioiIiEhAUYIqIiIiIgFFCaqIiIiIBBQlqCIiIiISUJSgioiIiEhAUYIqIiIiIgFFCaqIiIiIBBQlqCIiIiISUJSgioiIiEhAUYIqIiIiIgFFCapccM65Ns655c65I865vc65ZOfcVaWsW8k594Jz7n959Vc652473zFfrM7yXlgJm+d8x11eOeeud869mvdzezjv/apXzHFn9XPunHvIObfJOZftnNvsnBt4Lq+jvLsQ98E5l1rC5+ORc3095VUZ7sN459wS59yevGP6lvE8nZ1zXzrnjjrndjrnxjjnKp6jy5DzRAmqXFDOuVuBJcBPQFfgYeA24APnXEgpmvg78BDwBHA38D9gsZKisjsH9wJgOpBYaNtyzoO9eDQA7gP2AZ+c4rgz/jl3zj0EvAH8C7gTeAuY7JwbdHahX1TO+33Is46in495Zxjzxai092EYUBlYUNYTOOfa4/0spAEdgL8AY4DxZW1LLjAz06btgm3AMiATCCpQ1gwwYPBp6kbnHdevQFkQsBmY7+9rK2/b2dyLvGMNeMbf11GeNqBCge8fzHsP6xU65ox/zvOO+wGYUah8KvAjcJm/34NA2M73fcg7NhVY7u9rDeStNPeh4HF4E1oD+pbhHF8CHxUqewI4Blzt7/dAW8mbelDlQksAlppZTn6BmaUBe4Aup6l7D3Ac+EeBujl4eyTal6HXT7zO5l7IGTCzE6U47Gx+zhOBUGBWofJkoBbQskwBX6QuwH2QUijlfSj1cYU55+oAHor/PFyGt0dVApQSVLnQcvH+z7WwbCDiNHXDge1mdrhQ+XogGO//rqX0zuZe5BuUN87xsHPuw7xhA3J2zubnPDzv61fF1AVocvbhXTLOxe+bps65/c654865dc65B855lHIqxX4ezGw7cBh9HgJakL8DkEvOZrw9dz7OubrANXh7K07lCrxjlQrbW2C/lN7Z3Avw9kosAL4F6gL/B3zonEsys9RzG+ol5Wx+zvP3Fa6vz0jZne3vm4+B2XjHZNcAegN/c85dY2bPnLMo5VRK+jzkl+nzEMCUoMqF9hdglnPuGeAVvL8g/gqcyNtOxeEdf1RcuZTd2dwLzKxXgZefOOfewdtT8Qx6lHw2zubnPP+Y4upL2ZzV7xsze6JQ0TvOuf8H/NE597KZHTzbAOW0TvV50L8bAU6P+OWCMrPZeBOYR4HvgQ3ALmAh3hmyp7KX4v/HW7PAfimls7wXxbWXBbyHd6KVnLmz+TkvqXfvikL75fTOx++buUAlIPJMg5IyOVVvdw30eQhoSlDlgjOzx4HaQBRwjZl1AxoCy09TdT1wo3Pu8kLlTfCOpcw817Fe7M7iXpSkpF4nKb2z+TnPH2saXqg8f6zdhrMP75JxPn7fqIf7wir285C31url6PMQ0JSgil+Y2SEzyzCz751zdwKNgSmnqTYf78zLX+cXOOeCgN8AS8ws+7wFfBE7w3tRhHOuOtAR+Pxcx3iJOZuf85V4l5PqUai8J97eok/PbagXtfPx+6Y7cATIOCcRyimZ2dfAWor/PBwHFl3woKTUNAZVLijnXFO8S3t8kVfUEu/kmj+b2YoCx9UFtgFPmdlTAGaW7pz7B/Cyc+4yYDswCLiRor+A5DTO5l4450YCYUAKP0+SGglcje7FKTnnfpX3bWze1w7Oud3AbjP7qCw/5865TGCnmbUFMLPjzrnH8S7MvwvvWre3A78FhplZcas2XJLO533IW81iFPBvYAfwC6AP3qWrRpnZofN6ceXI6e5D3jGt8C6fdnXeMXHOuYMAZvZ2gbY+AOqaWcEVFh4DFjjn3sA7xKIp3oX6/2Jm352ny5Jzwd8LsWq7tDa8j1qW4/3rRUfwJkf9ijmuHt7HYGMLlVcGXgK+A47i7a1r7e/rKo/b2dwLoBPe3rgf8fZE7MHb43SLv68r0Le897K4LbXAMaX6Oceb/KQWUz4A7+zxbGArpfjDC5fadj7vA94lqBbhHdOdDRwEVgDd/H3dgbaV8j6klnRcobZSgR3FnOOXeHtSs4Gv8S7UX9Hf167t1JvLu3kiIiIiIgFBY1BFREREJKAoQRURERGRgKIEVUREREQCihJUEREREQkoSlBFREREJKAoQRURERGRgKIEVUREREQCihJUEREREQkoSlBFREREJKAoQRURERGRgKIEVUTET5xzlznn0pxze51z1xfa9xfnnDnn7vZXfCIi/qIEVUTET8zsONAduAyY5ZyrAOCc6wAMAyaZ2QI/higi4hfOzPwdg4jIJc051w+YCjyW93UdsBuIM7Oj/oxNRMQflKCKiAQA59w84JfAWiACuMXMMvwblYiIfyhBFREJAM65GsAWIBT4nZlN9HNIIiJ+ozGoIiKBIR6onfd9tD8DERHxN/Wgioj4mXMuFO+4073AEuAR4H4z+4dfAxMR8RMlqCIifuacexdIwtuLugFYATQAos3sa3/GJiLiD3rELyLiR865wcDdwGgzW5u39FQPCi09JSJyKdEvPhERP3HO3QxMAJYCL+eXm9kW4GHgVrxLT4mIXFL0iF9EREREAop6UEVEREQkoChBFREREZGAogRVRERERAKKElQRERERCShKUEVEREQkoChBFREREZGAogRVRERERAKKElQRERERCShKUEVEREQkoChBFREREZGA8v8BLx7IYbrJtvUAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 720x576 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plot_region(x_bounds=(8, 13), y_bounds=(-30, -25))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[('rocking chair', 0.9627920389175415),\n",
       " ('rocker', 0.9578711986541748),\n",
       " ('folding chair', 0.9499403834342957),\n",
       " ('beach chair', 0.9468148946762085),\n",
       " ('chaise', 0.9443647861480713),\n",
       " ('chaise longue', 0.9433206915855408),\n",
       " ('tulip chair', 0.9427719712257385),\n",
       " ('ball chair', 0.9418196678161621),\n",
       " ('deck chair', 0.9398950934410095),\n",
       " ('daybed', 0.9372831583023071)]"
      ]
     },
     "execution_count": 19,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "text2vec.wv.most_similar(\"chair\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[('desk', 0.9749444723129272),\n",
       " ('side table', 0.9663544297218323),\n",
       " ('drawing table', 0.9653061628341675),\n",
       " ('workshop table', 0.9630077481269836),\n",
       " ('rectangular table', 0.9629335999488831),\n",
       " ('drafting table', 0.9507492184638977),\n",
       " ('cabinet table', 0.9485939741134644),\n",
       " ('worktable', 0.946897566318512),\n",
       " ('work table', 0.9399303793907166),\n",
       " ('kitchen table', 0.9369111657142639)]"
      ]
     },
     "execution_count": 20,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "text2vec.wv.most_similar(\"table\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[('laptop computer', 0.6320562362670898),\n",
       " ('floor lamp', 0.6131067276000977),\n",
       " ('acoustic guitar', 0.6067026853561401),\n",
       " ('wall clock', 0.5885015726089478),\n",
       " ('alarm clock', 0.5808491706848145),\n",
       " ('alarm', 0.5783077478408813),\n",
       " ('grandfather clock', 0.5701669454574585),\n",
       " ('longcase clock', 0.568123996257782),\n",
       " ('knife', 0.5672478675842285),\n",
       " ('table lamp', 0.5584310293197632)]"
      ]
     },
     "execution_count": 21,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "text2vec.wv.most_similar(\"lamp\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[('coupe', 0.9275468587875366),\n",
       " ('stock car', 0.9102864265441895),\n",
       " ('hatchback', 0.9036633968353271),\n",
       " ('hot rod', 0.9035540819168091),\n",
       " ('hot-rod', 0.9021649360656738),\n",
       " ('racer', 0.8974037170410156),\n",
       " ('limousine', 0.8903389573097229),\n",
       " ('racing car', 0.8853664994239807),\n",
       " ('race car', 0.8848546147346497),\n",
       " ('tourer', 0.8788419365882874)]"
      ]
     },
     "execution_count": 22,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "text2vec.wv.most_similar(\"car\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[('handset', 0.9741607308387756),\n",
       " ('french telephone', 0.9738401770591736),\n",
       " ('desk phone', 0.9679966568946838),\n",
       " ('cell', 0.9660876393318176),\n",
       " ('cellular telephone', 0.9618216753005981),\n",
       " ('earpiece', 0.9573543071746826),\n",
       " ('computer keyboard', 0.9530268311500549),\n",
       " ('earphone', 0.9502719044685364),\n",
       " ('cellular phone', 0.9487477540969849),\n",
       " ('keypad', 0.942655622959137)]"
      ]
     },
     "execution_count": 23,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "text2vec.wv.most_similar(\"phone\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[('jitney', 0.9996451139450073),\n",
       " ('motorcoach', 0.9996317028999329),\n",
       " ('double-decker', 0.9996039271354675),\n",
       " ('passenger vehi', 0.9995738863945007),\n",
       " ('omnibus', 0.9993641376495361),\n",
       " ('coach', 0.9992544054985046),\n",
       " ('motorbus', 0.9985891580581665),\n",
       " ('charabanc', 0.9984617233276367),\n",
       " ('autobus', 0.9971399903297424),\n",
       " ('can', 0.9757269620895386)]"
      ]
     },
     "execution_count": 24,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "text2vec.wv.most_similar(\"bus\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[('dirt bike', 0.9632744193077087),\n",
       " ('scrambler', 0.9615655541419983),\n",
       " ('moped', 0.9575954675674438),\n",
       " ('trail bike', 0.956555187702179),\n",
       " ('cycle', 0.9371389746665955),\n",
       " ('wheel', 0.9340038299560547),\n",
       " ('bicycle', 0.9246512651443481),\n",
       " ('motorcycle', 0.8382394313812256),\n",
       " ('wide-body aircraft', 0.7615112662315369),\n",
       " ('twin-aisle airplane', 0.7564845085144043)]"
      ]
     },
     "execution_count": 25,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "text2vec.wv.most_similar(\"bike\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[('small boat', 0.9960728287696838),\n",
       " ('pirate ship', 0.9895965456962585),\n",
       " ('sea boat', 0.989292562007904),\n",
       " ('canoe', 0.9889751076698303),\n",
       " ('catamaran', 0.987849771976471),\n",
       " ('dory', 0.987693190574646),\n",
       " ('clipper', 0.9874402284622192),\n",
       " ('guard boat', 0.9870436787605286),\n",
       " ('outboard', 0.987012505531311),\n",
       " ('outboard motorboat', 0.9867821335792542)]"
      ]
     },
     "execution_count": 26,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "text2vec.wv.most_similar(\"boat\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[('transport airplane', 0.9993488192558289),\n",
       " ('swept wing', 0.9990774989128113),\n",
       " ('jet-propelled plane', 0.9990684390068054),\n",
       " ('airliner', 0.9990535378456116),\n",
       " ('jet', 0.998982310295105),\n",
       " ('airplane', 0.998500645160675),\n",
       " ('aeroplane', 0.998235285282135),\n",
       " ('jet plane', 0.9979612231254578),\n",
       " ('straight wing', 0.9961549043655396),\n",
       " ('propeller plane', 0.9958639740943909)]"
      ]
     },
     "execution_count": 27,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "text2vec.wv.most_similar(\"plane\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[('precision rifle', 0.9941026568412781),\n",
       " ('sniper rifle', 0.9909502863883972),\n",
       " ('shooting iron', 0.9803005456924438),\n",
       " ('side arm', 0.9787512421607971),\n",
       " ('carbine', 0.9763444662094116),\n",
       " ('pistol', 0.9761303663253784),\n",
       " ('handgun', 0.9718133807182312),\n",
       " ('six-shooter', 0.9691383838653564),\n",
       " ('six-gun', 0.9669408202171326),\n",
       " ('revolver', 0.9620193839073181)]"
      ]
     },
     "execution_count": 28,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "text2vec.wv.most_similar(\"rifle\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "data/02691156.csv ---------- 0\n",
      "data/02747177.csv ---------- 0\n",
      "data/02773838.csv ---------- 0\n",
      "data/02801938.csv ---------- 0\n",
      "data/02808440.csv ---------- 0\n",
      "data/02818832.csv ---------- 0\n",
      "data/02828884.csv ---------- 15\n",
      "data/02834778.csv ---------- 0\n",
      "data/02843684.csv ---------- 0\n",
      "data/02858304.csv ---------- 0\n",
      "data/02871439.csv ---------- 0\n",
      "data/02876657.csv ---------- 0\n",
      "data/02880940.csv ---------- 0\n",
      "data/02924116.csv ---------- 0\n",
      "data/02933112.csv ---------- 0\n",
      "data/02942699.csv ---------- 0\n",
      "data/02946921.csv ---------- 0\n",
      "data/02954340.csv ---------- 0\n",
      "data/02958343.csv ---------- 0\n",
      "data/02992529.csv ---------- 0\n",
      "data/03001627.csv ---------- 5531\n",
      "data/03046257.csv ---------- 0\n",
      "data/03085013.csv ---------- 0\n",
      "data/03207941.csv ---------- 0\n",
      "data/03211117.csv ---------- 0\n",
      "data/03261776.csv ---------- 0\n",
      "data/03320046.csv ---------- 0\n",
      "data/03325088.csv ---------- 0\n",
      "data/03337140.csv ---------- 0\n",
      "data/03467517.csv ---------- 0\n",
      "data/03513137.csv ---------- 0\n",
      "data/03593526.csv ---------- 0\n",
      "data/03624134.csv ---------- 0\n",
      "data/03636649.csv ---------- 0\n",
      "data/03642806.csv ---------- 0\n",
      "data/03691459.csv ---------- 0\n",
      "data/03710193.csv ---------- 0\n",
      "data/03759954.csv ---------- 0\n",
      "data/03761084.csv ---------- 0\n",
      "data/03790512.csv ---------- 0\n",
      "data/03797390.csv ---------- 0\n",
      "data/03928116.csv ---------- 0\n",
      "data/03938244.csv ---------- 0\n",
      "data/03948459.csv ---------- 0\n",
      "data/03991062.csv ---------- 0\n",
      "data/04004475.csv ---------- 0\n",
      "data/04074963.csv ---------- 0\n",
      "data/04090263.csv ---------- 0\n",
      "data/04099429.csv ---------- 0\n",
      "data/04225987.csv ---------- 0\n",
      "data/04256520.csv ---------- 0\n",
      "data/04330267.csv ---------- 0\n",
      "data/04379243.csv ---------- 0\n",
      "data/04401088.csv ---------- 0\n",
      "data/04460130.csv ---------- 0\n",
      "data/04468005.csv ---------- 0\n",
      "data/04530566.csv ---------- 0\n",
      "data/04554684.csv ---------- 0\n"
     ]
    }
   ],
   "source": [
    "#search for the id of object; you have the tag.\n",
    "\n",
    "input_word = 'chair'\n",
    "\n",
    "file_names = sorted(glob.glob('data/*.csv'))\n",
    "\n",
    "image_ids = []\n",
    "\n",
    "for file_name in file_names:\n",
    "    df = pd.read_csv(file_name)\n",
    "    \n",
    "    count = 0\n",
    "    for index, row in df.iterrows():\n",
    "        \n",
    "        sentence = []\n",
    "        for i in range (1, len(row)):\n",
    "            if (type(row[i]) == type('str') and len(row[i]) > 2):\n",
    "                if (row[i] != '' and row[i] != ' '):\n",
    "                    if ((row[i][0] >= 'a' and row[i][0] <='z') or (row[i][0] >= 'A' and row[i][0] <='Z')):\n",
    "                        sentence.append(row[i].lower())\n",
    "        \n",
    "            cleaned_sentence = (';'.join(sentence)).split(';')\n",
    "            sentence = cleaned_sentence\n",
    "            \n",
    "            if (input_word in sentence and row[0] not in image_ids):\n",
    "                image_ids.append(row[0])\n",
    "                count += 1\n",
    "                \n",
    "    print(file_name + ' ---------- ' + str(count))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "3dw.d3bf9df2360f0a56731dc97277e95217\n"
     ]
    }
   ],
   "source": [
    "image_id = image_ids[random.randrange(0, len(image_ids))]\n",
    "print(image_id)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {},
   "outputs": [],
   "source": [
    "#save image_id in a new file\n",
    "\n",
    "#f = open(\"image_id.txt\",\"w+\")\n",
    "#f.write(file_name + '/' + image_id)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 2",
   "language": "python",
   "name": "python2"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 2
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython2",
   "version": "2.7.15"
  },
  "widgets": {
   "state": {},
   "version": "1.1.2"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
